﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Web;
using System.Web.Security;

namespace SistemaAdministracion.Models.BaseClass
{
    public class UserIdentity: IIdentity, IPrincipal
    {

        //clase que obtiene datos de identificacion 
        private readonly FormsAuthenticationTicket _ticket;

        public UserIdentity(FormsAuthenticationTicket ticker)
        {

            this._ticket = ticker;
        }

        public string AuthenticationType
        {
            //retorna siempre una validacion  de tipo usuario
            get { return "User"; }
        }

        public bool IsAuthenticated
        {
            //siempre es autentificado
            get { return true; }
        }

        public string Name
        {
            //obtenemos el nombre del usuario del ticket
            get { return _ticket.Name; }
        }

        public string UserId
        {
            //obntenemos la id del usuario
            get { return _ticket.UserData; }
        }

        public IIdentity Identity
        {
            get { return this; }
        }

        public bool IsInRole(string role)
        {
            //consultamos si el rol corresponde al usuario
            return Roles.IsUserInRole(role);
        }
    }
}